Systems and methods for time series simulation

ABSTRACT

Systems, apparatuses, methods, and computer program products are disclosed for generating time series. A time series simulator receives information corresponding to a request for time series. The information is formatted into input data by the time series simulator. The input data comprises at least one continuous condition. A generator network of the continuous condition generative adversarial network (CCGAN) generates the time series based directly on a value of the at least one continuous condition. The time series is provided such that the time series is at least one of (a) provided as input to an analysis pipeline or (b) received by a user computing device wherein a representation of at least a portion of the one or more time series is provided via an interactive user interface of the user computing device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This Application is a continuation of U.S. patent application Ser. No.16/531,518, filed Aug. 5, 2019, which claims priority to U.S. PatentApplication No. 62/834,534, filed Apr. 16, 2019, the contents of whichare herein incorporated in their entireties by reference.

TECHNOLOGICAL FIELD

Example embodiments of the present disclosure relate generally to thesimulation of time series and, more particularly, to systems and methodsfor simulating time series using a conditional generative adversarialnetwork (CGAN).

BACKGROUND

A time series is a series of a plurality of instances ofinformation/data that are ordered based on times associated with theinstances of information/data. Time series may be used to performvarious analyses regarding how various measurements and/or variablesevolve with time. However, generating realistic time series data can bedifficult. For example, the estimation or generation of non-Gaussian,skewed, heavy-tailed distributions with time-varying dependence featuresmay be particularly difficult.

BRIEF SUMMARY

Systems, apparatuses, methods, and computer program products aredisclosed herein for generating realistic time series distributions.Various embodiments provide for the simulation of realistic time seriesdistributions, including non-Gaussian, skewed, heavy-taileddistributions with time-varying dependence features. In particular,various embodiments of the present invention use a CGAN for generatingrealistic time series distributions.

In one example embodiment, a system is provided for generating realistictime series distributions. The system includes at least one computingentity configured to operate a CGAN.

In another example embodiment, an apparatus is provided for generatingor simulating realistic time series distributions using a CGAN.

In another example embodiment, a method is provided for generating orsimulating time series distributions using a CGAN.

Various embodiments provide methods, apparatus, systems, computerprogram products, and/or the like for generating and/or simulating timeseries using conditional generative adversarial networks (CGANs). CGANsare traditionally used in the field of image processing. A CGANcomprises two neural networks that contest with each other in a game,such as a zero-sum game, for example. A first neural network, referredto as the generator network, attempts to generate an image, for example,that is similar to an input image. A second neural network, referred toas the discriminator network, attempts to determine which images, forexample, provided to the discriminator network were generated by thegenerator network and which were not generated by the generator network.The generator and discriminator networks are collaboratively trained ina semi-supervised or unsupervised fashion.

Additionally, the training images used to train the generator anddiscriminator networks of the CGAN are each associated with a conditionor label. A CGAN traditionally includes subnetworks that are eachtrained using training data corresponding to one discrete value of thecondition. For example, the training data may be partitioned based onthe corresponding discrete condition values and each partition of thetraining data may be used to train a corresponding subnetwork (e.g.,including a generator sub-network and a discriminator sub-network).However, when generating or simulating time series, one or moreconditions, rather than being discrete as in the traditional imageprocessing CGAN applications, be continuous. For example, the conditionsmay be current and/or historical values corresponding to one or moreinput instances of information/data and the time series generated and/orsimulated by the CGAN may be an extension of a time series that includesthe one or more input instances of information/data. For example, theconditions may be current and/or historical values describing a level orvolatility of one or more indexes that may affect the evolution of oneor more values of the instances of information/data of the time series.For example, if the time series comprises a plurality of instances ofinformation/data that each include a gross domestic product (GDP) value,the conditions may include current and/or historical economic volatilityinformation/data, current and/or historical GDP values, and/or the like.

Thus, various embodiments provide a continuous condition generativeadversarial networks (CCGANs). Various embodiments provide CCGANsconfigured for generating and/or simulating a time series using one ormore continuous conditions. In various embodiments, a CCGAN may beconfigured for one or more continuous conditions and one or morecategorical (e.g., discrete) conditions. In various embodiments, one ormore conditions are provided along with training data such that theCCGAN is trained to generate an n-lag conditional predictivedistribution from the one or more conditions.

Traditionally, time series are simulated using an autoregressive model(AR), generalized autoregressive conditional heteroscedasticity (GARCH)model, and variants thereof. As an alternative to these traditional timeseries simulations, stochastic models have also been used, such as theHull White model and the Ornstein-Uhlenbeck process. However, thesemodels are strongly dependent on model assumptions and estimation of themodel parameters and, thus, are less effective in the estimation orgeneration of time series corresponding to non-Gaussian, skewed, and/orheavy-tailed distributions and/or distributions with time-varyingdependence features. As described herein, a CGAN or CCGAN provides anon-parametric technique capable of learning dependence structures oftime series and simulating conditional predictive time series, even fortime series corresponding to non-Gaussian, skewed, and/or heavy-taileddistributions and/or distributions with time-varying dependencefeatures.

For example, the use of the CCGAN to generate and/or simulate the timeseries removes the model assumptions and enables the effectivegeneration and/or simulation of time series corresponding tonon-Gaussian, skewed, and/or heavy-tailed distributions and/ordistributions with time-varying dependence features. Thus, the use ofthe CCGAN provides a technical improvement in the field of generatingand/or simulating time series as the removal of the model assumptionsallows for a more accurate determination of values of a time series andthe correlations (e.g., first order and/or second order) between variouselements of the instances of information/data of the time series and/ordetermined based on the time series. For example, when a time seriesdetermined by traditional means is used, the correlation between twoelements or parameters is set by the model assumptions rather than bythe actual, real world relationship between the two elements orparameters. By generating and/or simulating the time series using theCCGAN, the correlation between the two elements or parameters representsthe correlation between the two elements or parameters learned by theCCGAN based on training data used to train the CCGAN. Thus, using theCCGAN to generate and/or simulate time series provides a technicaladvantage.

According to a first aspect, a method for generating one or more timeseries is provided. In an example embodiment, the method comprisesreceiving by a time series simulator operating on a computing device,information corresponding to a request for one or more time series. Themethod further comprises formatting at least a portion of theinformation corresponding to the request for the one or more time seriesinto input data by the time series simulator. The input data comprisesat least one continuous condition. The method further comprisesgenerating, via a generator network of the continuous conditiongenerative adversarial network (CCGAN) operating on the computingdevice, the one or more time series based on the input data. The one ormore time series are generated directly based on a value of the at leastone continuous condition. The method further comprises compiling the oneor more time series by the time series simulator; and providing, via thecomputing device, the one or more time series. The one or more timeseries are provided such that the time series is at least one of (a)provided as input to an analysis pipeline or (b) received by a usercomputing device wherein a representation of at least a portion of theone or more time series is provided via an interactive user interface ofthe user computing device.

According to another aspect, an apparatus for generating one or moretime series is provided. In an example embodiment, the apparatuscomprises processing circuitry (e.g., one or more processors and/orsimulator circuitry). In an example embodiment, the processing circuitryis configured to receive, by a time series simulator operating on theapparatus, information corresponding to a request for one or more timeseries; operate the time series simulator to format at least a portionof the information corresponding to the request for the one or more timeseries into input data, the input data comprising at least onecontinuous condition; operate a generator network of the continuouscondition generative adversarial network (CCGAN) to generate the one ormore time series based on the input data, wherein the one or more timeseries are generated directly based on a value of the at least onecontinuous condition; operate the time series simulator to compile theone or more time series; and cause the one or more time series to beprovided such that the time series is at least one of (a) provided asinput to an analysis pipeline or (b) received by a user computing devicewherein a representation of at least a portion of the one or more timeseries is provided via an interactive user interface of the usercomputing device. For example, the apparatus may comprise communicationcircuitry (e.g., communication interface) and the processing circuitrymay be configured to cause the communication circuitry to provide (e.g.,transmit) the one or more time series such that a user computing devicereceives the one or more time series.

According to yet another aspect, a computer program product forgenerating one or more time series is provided. In an exampleembodiment, the computer program product comprises at least onenon-transitory computer-readable storage medium storing softwareinstructions. The software instructions, when executed, cause anapparatus to receive, by a time series simulator operating on theapparatus, information corresponding to a request for one or more timeseries; operate the time series simulator to format at least a portionof the information corresponding to the request for the one or more timeseries into input data, the input data comprising at least onecontinuous condition; operate a generator network of the continuouscondition generative adversarial network (CCGAN) to generate the one ormore time series based on the input data, wherein the one or more timeseries are generated directly based on a value of the at least onecontinuous condition; operate the time series simulator to compile theone or more time series; and cause the one or more time series to beprovided such that the time series is at least one of (a) provided asinput to an analysis pipeline or (b) received by a user computing devicewherein a representation of at least a portion of the one or more timeseries is provided via an interactive user interface of the usercomputing device.

The foregoing brief summary is provided merely for purposes ofsummarizing some example embodiments illustrating some aspects of thepresent disclosure. Accordingly, it will be appreciated that theabove-described embodiments are merely examples and should not beconstrued to narrow the scope of the present disclosure in any way. Itwill be appreciated that the scope of the present disclosure encompassesmany potential embodiments in addition to those summarized herein, someof which will be described in further detail below.

BRIEF DESCRIPTION OF THE FIGURES

Having described certain example embodiments of the present disclosurein general terms above, reference will now be made to the accompanyingdrawings, which are not necessarily drawn to scale. Some embodiments mayinclude fewer or more components than those shown in the figures.

FIG. 1 is a block diagram showing an example architecture of oneembodiment described herein.

FIG. 2 is a block diagram of a model computing entity that may bespecifically configured in accordance with an example embodimentdescribed herein.

FIG. 3 is a block diagram of a user computing entity that may bespecifically configured in accordance with an example embodimentdescribed herein.

FIG. 4A is a block diagram showing an example architecture of a CCGANfor generating and/or simulating time series, in accordance with anexample embodiment described herein.

FIG. 4B illustrates pseudocode for training a CCGAN, in accordance withan example embodiment described herein.

FIG. 5 is a flowchart illustrating operations performed, such as by themodel computing entity of FIG. 2 to provide callable options values, inaccordance with an example embodiment described herein.

FIG. 6 illustrates an example IUI that may be used to cause thegeneration of a time series request, in an example embodiment describedherein.

FIG. 7 illustrates some example simulated time series, according to anexample embodiment described herein.

DETAILED DESCRIPTION

Some embodiments of the present disclosure will now be described morefully hereinafter with reference to the accompanying figures, in whichsome, but not all embodiments of the disclosures are shown. Indeed,these disclosures may be embodied in many different forms and should notbe construed as limited to the embodiments set forth herein; rather,these embodiments are provided so that this disclosure will satisfyapplicable legal requirements. Like numbers refer to like elementsthroughout.

Where the specification states that a particular component or feature“may,” “can,” “could,” “should,” “would,” “preferably,” “possibly,”“typically,” “optionally,” “for example,” “often,” “exemplary,” or“might” (or other such language) be included or have a characteristic,that particular component or feature is not required to be included orto have the characteristic. Such terminology is intended to convey thatthe particular component or feature is included in some embodimentswhile excluded in others, or has the characteristic in some embodimentswhile lacking the characteristic in others.

The term “computing device” is used herein to refer to any one or all ofprogrammable logic controllers (PLCs), programmable automationcontrollers (PACs), industrial computers, desktop computers, personaldata assistants (PDAs), laptop computers, tablet computers, smart books,palm-top computers, personal computers, smartphones, wearable devices(such as headsets, smartwatches, or the like), and similar electronicdevices equipped with at least a processor and any other physicalcomponents necessary to perform the various operations described herein.Devices such as smartphones, laptop computers, tablet computers, andwearable devices are generally collectively referred to as mobiledevices.

The term “server” or “server device” is used to refer to any computingdevice capable of functioning as a server, such as a master exchangeserver, web server, mail server, document server, or any other type ofserver. A server may be a dedicated computing device or a server module(e.g., an application) an application hosted by a computing device thatcauses the computing device to operate as a server. A server module(e.g., server application) may be a full function server module, or alight or secondary server module (e.g., light or secondary serverapplication) that is configured to provide synchronization servicesamong the dynamic databases on computing devices. A light server orsecondary server may be a slimmed-down version of server typefunctionality that can be implemented on a computing device, such as asmart phone, thereby enabling it to function as an Internet server(e.g., an enterprise e-mail server) only to the extent necessary toprovide the functionality described herein.

Overview

Various embodiments provide methods, systems, apparatuses, and/orcomputer program products for generating and/or simulating time series.In various embodiments, a time series is a series of a plurality ofinstances of information/data that are ordered based on times associatedwith the instances of information/data.

Various embodiments provides methods, systems, apparatuses, and/orcomputer program products for generating and/or simulating time seriesusing CCGANs. For example, various embodiments provide methods, systems,apparatuses, and/or computer program products for training a CCGANand/or using a trained CCGAN to generate and/or simulate a time series.In various embodiments, a time series may be generated and/or simulatedresponsive to receiving a request for a generated and/or simulated timeseries. For example, the request may be generated and/or providedresponsive to a human user interacting with an interactive userinterface (IUI) and/or by a machine user. Various embodiments provide anIUI and/or analysis pipeline for providing and/or determining a timeseries prediction and/or future measure value(s) based on the generatedand/or simulated time series. Various embodiments may be used tovalidate one or more models (e.g., economic models and/or the like).

In various embodiments, the CCGAN is trained such that the one or moreconditions (e.g., the continuous conditions and optionally anycategorical/discrete conditions) are passed directly to the generatornetwork such that the generator network generates and/or simulates thetime series based on the conditions passed to the generator network.This is in contrast to a traditional CGAN were the conditions are usedto determine which sub-network to use to generate an image rather thandirectly using the conditions themselves in generating the image. Forexample, categorical and/or discrete conditions may be used as dummyvariables to indicate a cluster or group corresponding to an instance ofinformation/data of the time series and/or the time series as a whole.For example, a categorical and/or discrete condition may be used toindicate whether an instance of information/data of the time seriescorresponds to a time of economic stress or to a time of a non-stressedeconomy.

In contrast, the continuous conditions may be used directly by the CCGANin determining one or more elements of an instance of information/dataof a time series. For example, rather than being a dummy variable, thevalue of a continuous condition is directly used in the determination ofat least one element of the time series. For example, a continuouscondition may be used to provide an n-time step lag of a previouslydetermined element. For example, each instance of a time series includesa value for a first element. The value of the first element determinedat time step t_(i) may then be provided as a continuous condition fordetermining the value of the first element at time step t_(i+n). In anexample embodiment, n=1, such that the value of the first element attime step t_(i) is provided as a continuous condition for determiningthe value of the first element at time step t_(i+1). As such, thecontinuous condition is not merely used as a dummy variable, but ratheris used directly by the CCGAN for determining values for elements of theinstance of information/data of the time series. For example, for a timeseries with a strong one time step lag autocorrelation, the time seriesvalue at time step t_(i) may be used as the continuous condition for theprediction of the value at time step t_(i+1). For a time series with anunderlying volatility dynamic, the volatility value at time step t_(i)may be used as the continuous condition for the prediction of the valueat time step t_(i+1), possibly in addition to the time series value attime step t_(i).

In various embodiments, the generated time series are used incalculation of Value-at-Risk (VaR), expected shortfall (ES), predict themovement of market risk factors, predict economic values (e.g., GDP,unemployment, and/or the like), comprehensive capital analysis andreview (CCAR), primary market risk, benchmarking for an economic model,predicting financial derivatives, simulating data for trading,simulating data that is missing from a data set (e.g., determine aportion of a time series or one or more instances of information/data ofa time series that is missing the one or more instances ofinformation/data), determine first order and/or second ordercorrelations between various models, elements, and/or time varyingvalues, and/or the like.

Accordingly, the present disclosure sets forth systems, methods,apparatuses, and computer program products that generate and/or simulatetime series using a CCGAN. There are many advantages of these and otherembodiments described herein. For instance, the CCGAN provides improvedgenerated and/or simulated time series corresponding to non-Gaussian,skewed, and/or heavy-tailed distributions and/or distributions withtime-varying dependence features. Additionally, time series generatedand/or simulated via a CCGAN are not affected by the model assumptionsof traditional time series generation and/or simulation means, such thatcorrelations (e.g., first and/or second order correlations) betweenelements or parameters may be determined independent of modelparameters.

Although a high level explanation of the operations of exampleembodiments has been provided above, specific details regarding theconfiguration of such example embodiments are provided below.

System Architecture

Example embodiments described herein may be implemented using any of avariety of computing devices or servers. To this end, FIG. 1 illustratesan example environment 100 within which embodiments of the presentdisclosure may operate to generate and/or simulate time series using aCCGAN. As illustrated, the example embodiment 100 may include one ormore system computing devices 10 and one or more user computing devices20. The one or more system computing devices and/or one or more usercomputing devices 20 may be in electronic communication with, forexample, one another over the same or different wireless or wirednetworks 40. For example, a user computing device 20 may provide (e.g.,transmit, submit, and/or the like) a request for time series generationand/or simulation to a system computing device 10 via one or morewireless or wired networks 40. For example, a system computing devicemay provide (e.g., transmit) a generated and/or simulated time series toa user computing entity 20 via one or more wireless or wired networks40.

The one or more system computing devices 10 may be embodied as one ormore servers, such as that described below in connection with FIG. 2 .The one or more system computing devices 10 may further be implementedas local servers, remote servers, cloud-based servers (e.g., cloudutilities), or any combination thereof. The one or more system computingdevices 10 may receive, process, generate, and transmit data, signals,and electronic information to facilitate the operations of generatingand/or simulating and providing one or more time series. In variousembodiments, a system computing device 10 may store and/or be incommunication with one or more databases. In an example embodiment, theone or more databases may be embodied as one or more data storagedevices, such as a Network Attached Storage (NAS) device or devices, oras one or more separate databases or servers. The one or more databasesmay store information accessed by the system computing device 10 tofacilitate the operations of generating and/or simulating and providingone or more time series. For example, the one or more databases maystore control signals, device characteristics, and access credentialsfor one or more of the user computing devices 20.

The one or more user computing devices 20 may be embodied by anycomputing devices known in the art, such as those described below inconnection with FIG. 3 . The system computing device 10 may receiveinformation from, and transmit information to, the one or more usercomputing devices 20. For example, the system computing device 10 mayreceive a request for one or more time series generated and provided bya user computing device 20. For example, the system computing device 10may provide one or more time series and/or portion thereof such that auser computing device 20 receives the one or more time series and/orportion thereof. It will be understood that in some embodiments, the oneor more user computing devices 20 need not themselves be independentdevices, but may be peripheral devices communicatively coupled to othercomputing devices.

Exemplary Computing Devices

The system computing device 10 described with reference to FIG. 1 may beembodied by one or more computing devices or servers, such as theexample system computing device 10 shown in FIG. 2 . As illustrated inFIG. 2 , the system computing device 10 may include processing circuitry12, memory 14, communications circuitry 16, input-output circuitry 18,and/or simulator circuitry 19, each of which will be described ingreater detail below. In some embodiments, the system computing device10 may further comprise a bus (not expressly shown in FIG. 2 ) forpassing information between various components of the system computingdevice. The system computing device 10 may be configured to executevarious operations described above in connection with FIG. 1 and belowin connection with FIGS. 4 and 5 .

In some embodiments, the processor 12 (and/or co-processor or any otherprocessing circuitry assisting or otherwise associated with theprocessor) may be in communication with the memory 14 via a bus forpassing information among components of the apparatus. The processor 12may be embodied in a number of different ways and may, for example,include one or more processing devices configured to performindependently. Additionally or alternatively, the processor may includeone or more processors configured in tandem via a bus to enableindependent execution of software instructions, pipelining, and/ormultithreading. The use of the terms “processor” or “processingcircuitry” may be understood to include a single core processor, amulti-core processor, multiple processors of the system computing device10, remote or “cloud” processors, or any combination thereof.

In an example embodiment, the processor 12 may be configured to executesoftware instructions stored in the memory 14 or otherwise accessible tothe processor. Alternatively or additionally, the processor 12 may beconfigured to execute hard-coded functionality. As such, whetherconfigured by hardware or software methods, or by a combination ofhardware with software, the processor 12 may represent an entity (e.g.,physically embodied in circuitry) capable of performing operationsaccording to an embodiment of the present invention while configuredaccordingly. Alternatively, as another example, when the processor 12 isembodied as an executor of software instructions, the softwareinstructions may specifically configure the processor 12 to perform thealgorithms and/or operations described herein when the softwareinstructions are executed.

Memory 14 is non-transitory and may include, for example, one or morevolatile and/or non-volatile memories. In other words, for example, thememory 14 may be an electronic storage device (e.g., a computer readablestorage medium). The memory 14 may be configured to store information,data, content, applications, software instructions, or the like, forenabling the apparatus to carry out various functions in accordance withexample embodiments contemplated herein.

The communications circuitry 16 may be any means such as a device orcircuitry embodied in either hardware or a combination of hardware andsoftware that is configured to receive and/or transmit data from/to anetwork and/or any other device, circuitry, or module in communicationwith the system computing device 10. In this regard, the communicationscircuitry 16 may include, for example, a network interface for enablingcommunications with a wired or wireless communication network. Forexample, the communications circuitry 16 may include one or more networkinterface cards, antennas, buses, switches, routers, modems, andsupporting hardware and/or software, or any other device suitable forenabling communications via a network 40. Additionally or alternatively,the communication interface 16 may include the circuitry for causingtransmission of such signals to a network or to handle receipt ofsignals received from a network.

In some embodiments, the apparatus 200 may include input/outputcircuitry 18 in communication configured to provide output to a userand, in some embodiments, to receive an indication of user input. Theinput/output circuitry 18 may comprise a user interface, such as adisplay, and may further comprise the components that govern use of theuser interface, such as a web browser, mobile application, dedicatedclient device, or the like. In some embodiments, the input/outputcircuitry 18 may additionally or alternatively include a keyboard, amouse, a touch screen, touch areas, soft keys, a microphone, a speaker,and/or other input/output mechanisms. The input/output circuitry 18 mayutilize the processor 12 to control one or more functions of one or moreof these user interface elements through software instructions (e.g.,application software and/or system software, such as firmware) stored ona memory (e.g., memory 14) accessible to the processor 12.

In addition, the system computing device 10 further comprises simulatorcircuitry 19, which includes hardware components designed for acting asa CCGAN-based time series simulator. The simulator circuitry 19 mayutilize processor 12, memory 14, or any other hardware componentincluded in the system computing device 10 to perform these operations,as described in connection with FIGS. 4 and 5 below. The simulatorcircuitry 19 may further utilize communications circuitry 16 to receivetime series requests and/or provide one or more time series and/orportions thereof (e.g., in response to a request therefor), or mayotherwise utilize processor 12 and/or memory 14 to accessinformation/data and/or executable instructions (e.g., software) used togenerate and/or simulate one or more time series and/or to storegenerated and/or simulated time series, and/or the like. In an exampleembodiment, the functionality described herein as being performed by thesimulator circuitry 19 is performed through the execution executableinstructions by the processor 12. In an example embodiment, thesimulator circuitry 19 comprises one or more graphical processing units(GPUs).

Although these components 12-19 may in part be described usingfunctional language, it will be understood that the particularimplementations necessarily include the use of particular hardware. Itshould also be understood that certain of these components 12-19 mayinclude similar or common hardware. For example, the simulator circuitry19 may, at times, leverage use of the processor 12 or memory 14, butduplicate hardware is not required to facilitate operation of thesedistinct components of the system computing device 10 (althoughduplicated hardware components may be used in some embodiments, such asthose in which enhanced parallelism may be desired). The use of the term“circuitry” as used herein with respect to components of the modelcomputing device 10 therefore shall be interpreted as including theparticular hardware configured to perform the functions associated withthe particular circuitry described herein. Of course, while the term“circuitry” should be understood broadly to include hardware, in someembodiments, the term “circuitry” may refer also to softwareinstructions that configure the hardware components of the modelcomputing entity 10 to perform their various functions.

To this end, each of the communications circuitry 16, input/outputcircuitry 18, simulator circuitry 19 may include one or more dedicatedprocessors, specially configured field programmable gate arrays (FPGA),and/or application specific interface circuit (ASIC) to perform itscorresponding functions, these components may additionally oralternatively be implemented using a processor (e.g., processor 12)executing software stored in a memory (e.g., memory 14). In thisfashion, the communications circuitry 16, input/output circuitry 18,and/or simulator circuitry 19 are therefore implemented usingspecial-purpose components implemented purely via hardware design or mayutilize hardware components of the system computing device 10 thatexecute computer software designed to facilitate performance of thefunctions of the communications circuitry 16, input/output circuitry 18,and/or simulator circuitry 19.

The user computing device 20 described with reference to FIG. 1 may beembodied by one or more computing devices, personal computers, desktopcomputers, client devices (e.g., of the system computing device 10),and/or mobile devices, such as the example user computing device 20shown in FIG. 3 . The illustrated example user computing device 20includes processing circuitry and/or processor 22, memory 24,communications circuitry 26, and input-output circuitry 28, each ofwhich is configured to be similar to the similarly named componentsdescribed above in connection with FIG. 2 . In various embodiments, theprocessor 22, memory 24, and input-output circuitry 28 are configured toprovide an IUI configured for user interaction (e.g., via theinput-output circuitry 28). For example, the IUI may be configured toreceive user input initiating a time series request and/or to provide atime series and/or portion thereof.

In some embodiments, various components of the system computing device10 and/or user computing device 20 may be hosted remotely (e.g., by oneor more cloud servers) and thus need not physically reside on thecorresponding computing device 10, 20. Thus, some or all of thefunctionality described herein may be provided by third party circuitry.For example, a given computing device 10, 20 may access one or morethird party circuitries via any sort of networked connection thatfacilitates transmission of data and electronic information between thecomputing device 10, 20 and the third party circuitries. In turn, thatcomputing device 10, 20 may be in remote communication with one or moreof the other components describe above as comprising the computingdevice 10, 20.

As will be appreciated based on this disclosure, example embodimentscontemplated herein may be implemented by a system computing device 10and/or user computing device 20. Furthermore, embodiments may take theform of a computer program product on at least one non-transitorycomputer-readable storage medium (e.g., memory 14, 24) storing softwareinstructions. Any suitable non-transitory computer-readable storagemedium may be utilized, some examples of which are non-transitory harddisks, CD-ROMs, flash memory, optical storage devices, and magneticstorage devices. It should be appreciated, with respect to certainsystem computing devices 10 as described in FIG. 2 or user computingdevices 20 as described in FIG. 3 , that loading the softwareinstructions onto a computer or apparatus produces a special-purposemachine comprising the means for implementing various functionsdescribed herein.

Having described specific components of example system computing devices10 and user computing devices 20, example embodiments are describedbelow in connection with a series of flowcharts.

Example Time Series Simulator

In various embodiments, a time series simulator is provided. The timeseries simulator comprises CCGAN. In various embodiments, the timeseries simulator may further comprise a pre-processing module configuredto pre-process information/data to be provided as input to the CCGAN, apost-processing module configured to post-process time series generatedand/or simulated by the CCGAN, one or more analysis pipelines configuredto analyze one or more time series generated and/or simulated by theCCGAN, and/or the like. In various embodiments, a CCGAN is used togenerate and/or simulate one or more time series. A time series is aseries of a plurality of instances of information/data that are orderedbased on times associated with the instances of information/data. Eachinstance of information/data may comprise a value for one or moreelements. Some example elements may be an index value, a market rate orvalue, a volatility measure, a GDP value, an unemployment value, stockreturns, and/or any element of interest that may change over time (e.g.,that may change over the time period corresponding to the time series).

FIG. 4A provides a block diagram showing an example schematic of a CCGAN400. The CCGAN comprises a generator network 402 and a discriminatornetwork 404. In an example embodiment, the CCGAN is a continuousconditional Wasserstein generative adversarial network (CCWGAN). Thegenerator network 402 (and possibly the discriminator network 404) isconfigured to receive one or more conditions (e.g., as part of thesimulation input 412 or as part of the training data 410 duringtraining). At least one of the one or more conditions is a continuouscondition. For example, a continuous condition may take any value withina range of values and is not confined to a predefined set of values. Inan example embodiment, one or more of the conditions is a categorical ordiscrete condition which has a value that is selected from a predefinedset of values. For example, a categorical or discrete condition may takea value selected from the predefined closed set 0, 1, 2, 3, 4, 5, 6, 7,8, and 9. For example, a continuous condition may take a value withinthe defined range 0-9 (e.g., 1.41, 2.72, 3.14, and/or the like). In someembodiments, a continuous condition may not be defined by a range, butmay be able to take any value.

In various embodiments, the continuous conditions are provided to thegenerator network 402 (along with any other input) via an input layer ofthe generator network 402. The CCGAN may be configured to pass thecontinuous conditions from the input layer through one or more hiddenlayers, such that the continuous conditions are used to determine theresulting simulated time series 414 provided via the output layer of theCCGAN. In an example embodiment, the architecture of both the generatornetwork 402 and the discriminator network 404 include a 3-layer forwardconnected (e.g., feedforward) neural network with at least 100neurons/nodes for each layer, followed by application of a LeakyRectified Linear Unit (LeakyRelu) activation function for both thegenerator network 402 and the discriminator network 404. As should beunderstood, the number of layers of the generator network 402 anddiscriminator network 404 may be adjusted in various embodiments asappropriate for the application.

Training a CCGAN comprises a min max game on the cost function betweenthe generator network 402 (G) and the discriminator network 404 (D),where both the generator network 402 and the discriminator network 404are neural network models. The input of the generator network 402includes input vector z and conditions vector y, where z and/or valuesthereof is/are sampled from a distribution and y comprises one or moreconditions. For example, z and/or values thereof may be sampled from anoise distribution. In various embodiments, the noise distribution maybe a uniform or Gaussian distribution. In general the conditions vectory provides auxiliary and/or contextual information/data. Both z and yare applied to both the generator network 402 and the discriminatornetwork 404 via the corresponding input layers. The values of the inputvector z are combined with the values of the condition vector y in jointhidden representation, in an example embodiment. In various embodiments,the cost function C used to train the CCGAN is of the formC=min_(G)min_(D)E_(x˜p) _(d) [log(D(x, y))]+E_(z˜p) _(z) [log (1−D(G (z,y)))], where p_(z) is the distribution of the random noise from whichthe values of z are selected. In an example embodiment, the distributionp_(z) is a uniform distribution. In an example embodiment, thedistribution p_(z) is a Gaussian distribution. In various embodiments, aweight clipping adjustment is applied to remove the sharp gradients ofthe discriminator network 404. For example, a gradient penalty may beapplied to the discriminator network 404. In an example embodiment,(e.g., an example embodiment in which weight clipping adjustment isapplied to remove the sharp gradients of the discriminator network 404)batch normalization is not performed. In various embodiments, anoptimization scheme is used to update the weights and/or parameters ofthe generator network 402 and/or the discriminator network 404. In anexample embodiment, Adam (e.g., adaptive moment estimation) is used asthe optimization scheme to adjust one or more weights of the CCGAN 400as a result of a training iteration. For example, the optimization usedin an example embodiment includes updating the weights and/or parametersof the discriminator network 404 by ascending its stochastic gradientusing Adam.

In an example embodiment, the neural networks of both the generatornetwork 402 and the discriminator network 404 are constructed by fullyconnected layers followed by application of LeakyRelu activationfunctions with a. In general, the LeakyRelu activation function with α,ƒ(x, α), is

${f\left( {x,\alpha} \right)} = \left\{ {\begin{matrix}x & {x > 0} \\{\alpha x} & {else}\end{matrix},} \right.$where α is a small constant (e.g., α=0.01, in an example embodiment).Application of the LeakyRelu activation function attempts to mitigatethe “dying ReLU” problem, where a large gradient flowing through a ReLUneuron/node could cause the weights to update in such a way that theneuron/node will not activate on future data points.

In various embodiments, training the CCGAN comprises performing aplurality of training iterations. FIG. 4B illustrates example pseudocodefor training a CCGAN of an example embodiment. For each generatoriteration, n_(dis) discriminator iterations are performed. For example,as shown by lines 422-427 of the pseudocode of FIG. 4B, for n_(dis)iterations, a batch is sampled from the training data x and theircorresponding conditions y, a batch of noise z is samples from p_(z); x,y, and z are passed to the cost function and the weights and/orparameters of the discriminator network 404 are updated using anoptimization scheme (e.g., by ascending its stochastic gradient using,for example, Adam, or via another optimization scheme); weight clippingis performed for the discriminator weights and/or parameters based on ahyper-parameter for weight clipping c (e.g., the discriminator weightsand/or parameters are clipped to be within (−c, c). After performing then_(dis) iterations, as shown by lines 428-429 of the pseudocode providedby FIG. 4B, a batch of noise z is sampled from p_(z) and the weightsand/or parameters of the generator network 402 are updated using anoptimization scheme (e.g., by ascending its stochastic gradient using,for example, Adam, or another optimization scheme) based on the costfunction. This process is repeated for a plurality of iterations until atraining requirement of the CCGAN 400 is met. In various embodiments,the training requirement of the CCGAN is a number of iterations (e.g.,number of training iterations, shown in line 420 of the pseudocodeprovided by FIG. 4B). In various embodiments, the training requirementof the CCGAN is a convergence of the weights and/or parameters of thegenerator network 402 and/or the discriminator network 404 to a definedlevel of convergence.

In various embodiments, a CCGAN may be configured to receive inputcomprising continuous conditions and categorical and/or discreteconditions. In various embodiments, categorical and/or discreteconditions may be used as dummy variables to indicate a cluster, group,period, or region of time corresponding to an instance ofinformation/data of the time series and/or the time series as a whole.For example, a categorical and/or discrete condition may be used toindicate whether an instance of information/data of the time seriescorresponds to a time of economic stress or to a time of a non-stressedeconomy.

In contrast to the categorical and/or discrete conditions, thecontinuous conditions may be used directly by the CCGAN in determiningone or more elements of an instance of information/data of a timeseries. For example, a continuous condition may be used to provide ann-time step lag of a previously determined element. For example, eachinstance of a time series includes a value for a first element. Thevalue of the first element determined at time step t_(i) may then beprovided as a continuous condition for determining the value of thefirst element at time step t_(i+n). In an example embodiment, n=1, suchthat the value of the first element at time step t_(i) is provided as acontinuous condition for determining the value of the first element attime step t_(i+1). As such, the continuous condition is not merely usedas a dummy variable, but rather is used directly by the CCGAN fordetermining values for elements of the instance of information/data ofthe time series. In various embodiments, the continuous condition may bea value determined during time step t_(i) that is applied to time stept_(i+n), but that is not a value of an element within an instance ofinformation/data of the time series. For example, an instance ofinformation/data of the time series may include a value that is a meanor average value of a first element and the value passed to the CCGAN asa continuous condition for time step t_(i+n) may be a value that is avariance or standard deviation corresponding to the first element (orvice versa). In another example embodiment, the continuous condition mayprovide a measure of volatility for the corresponding time step. Invarious embodiments, the continuous condition may be raw time seriesinformation/data, or rolling period historical time seriesinformation/data. In an example embodiment, a multi-horizon time seriesmay be predicted. For example, in a multi-horizon prediction, multipletime steps of the time series may be modeled at the same time (e.g., inparallel, simultaneously, and/or the like).

As noted above, the generator network 402 is configured to sample noisez from distribution p_(z). As such, the CCGAN 400 may be provided withthe same conditions y as input and provide two different simulated timeseries. In various embodiments, this feature of the CCGAN is used togenerate a plurality of simulated time series using the same inputinformation/data 412. The plurality of simulated time series may then beprovided to an analysis pipeline. For example, the analysis pipeline maybe configured to generate a forecast time series corresponding to anelement of the time series by averaging a value for the element fromeach of the plurality of time series at each time step. For example, theanalysis pipeline may be configured to conduct a hypothetical shockanalysis. In another example, the analysis pipeline may be configured todetermine the likelihood of various scenarios based on a distribution ofthe plurality of time series.

Example Operation of a System Computing Device

In various embodiments, a system computing device 10 may operate and/orbe in communication with a time series simulator comprising a CCGAN. Invarious embodiments, the CCGAN is trained using traininginformation/data 410, for example as shown in FIG. 4B, and then may beused to generate and/or simulate time series. For example, the systemcomputing device 10 may generate and/or simulate time series based on areceived time series request. In various embodiments, a time seriesrequest is generated and provided in response to human user interactionwith an interactive user interface (IUI) provided via the input-outputcircuitry 28 of a user computing device 20. In various embodiments, atime series request is generated and provided in response to and/orthrough the operation of a machine user operating, for example, on auser computing device 20. The system computing device 10 may beconfigured to receive a time series request, generate and/or simulateone or more time series based on the received time series request, andto provide at least a portion of the one or more time series such that auser computing device 20 receives the at least a portion of the one ormore time series. In various embodiments, the at least a portion of theone or more time series may be used provided as input to an analysispipeline. In an example embodiment, a representation (e.g., graphicalrepresentation, tabular representation, and/or the like) of the at leasta portion of the one or more time series and/or an output of theanalysis pipeline may be provided via an IUI provided via input-outputcircuitry 28.

FIG. 5 provides flowchart illustrating operations performed, such as bythe system computing device 10 of FIG. 2 to generate and/or simulatetime series and provide the time series, in accordance with an exampleembodiment described herein. Starting at block 502, traininginformation/data 410 is received. For example, the system computingdevice 10 may receive and/or process training information/data. Forexample, the system computing device 10 may comprise means, such asprocessor 12, memory 14, communications interface 16, simulatorcircuitry 19, and/or the like for receiving and/or processing traininginformation/data. In various embodiments, the training information/datacomprises one or more time series. In various embodiments, the traininginformation/data comprises one or more time series comprising instancesof information/data that were generated through real world processes.For example, the training information/data may comprise one or more timeseries comprising historical information/data. In various embodiments,the training information/data may be pre-processed and/or processed bythe processor 12 and/or simulator circuitry 19 to place the traininginformation/data in the appropriate format for training the CCGAN 400.For example, the training information/data may be formatted to includetime ordered values x associated with corresponding conditions y. Forexample, the training information/data may be processed and/or formattedby the pre-processing module of the time series simulator, in an exampleembodiment.

In various embodiments, the conditions y include at least one conditionthat is a continuous condition. In various embodiments, the at least onecondition that is a continuous condition corresponding to a value attime step t_(i) that is applied by the CCGAN with an n-time step lagsuch that the value of the continuous condition at time step t_(i) isused to determine the value of an element of an instance ofinformation/data of the time series corresponding to time step t_(i+n).In various embodiments, n=1 or 2, such that the value of the continuouscondition at time step t_(i) is used to determine the value of anelement of an instance of information/data of the time seriescorresponding to time step t_(i+1) or t_(i+2).

At block 504, one or more simulated time series may be generated usingthe generator network 402 based on the training information/data. Forexample, the system computing device 10 may cause the generator network402 to simulate one or more time series based on the traininginformation/data. For example, the system computing device 10 maycomprise means, such as the processor 12, memory 14, simulator circuitry19, and/or the like, for generating one or more time series using thegenerator network 402 based on the training information/data.

At block 506, at least one of the one or more simulated time seriesand/or a time series from the training information/data are analyzed bythe discriminator network 404 in an attempt to identify the simulatedtime series. For example, the system computing device 10 may use thediscriminator network 404 to analyze at least one of the one or moresimulated time series and/or a time series from the traininginformation/data in an attempt to identify the simulated time seriesand/or to differentiate the simulated time series from the time seriesof the training information/data 410. For example, the system computingdevice 10 may comprise means, such as the processor 12, memory 14,simulator circuitry 19, and/or the like, for analyzing at least one ofthe one or more simulated time series and/or a time series from thetraining information/data with the discriminator network 404 in anattempt to identify the simulated time series and/or to differentiatethe simulated time series from the time series of the traininginformation/data 410.

At block 508, one or more network weights are modified and/or adjusted.For example, the system computing device 10 may modify and/or adjust oneor more weights and/or parameters of the generator network 402 and/ordiscriminator network 404 based on the discriminator network's abilityto identify the simulated time series and/or to differentiate thesimulated time series from the time series of the traininginformation/data 410. For example a cost function, (e.g., the costfunction C described above) may be used to how well the generatornetwork 402 and the discriminator network 404 have performed at thatiteration of the game (e.g., the generator network's performance atgenerating realistic time series and the discriminator network'sperformance at differentiating the simulated time series from the timeseries of the training information/data). An optimization scheme (e.g.,Adam stochastic gradient descent, and/or the like) may then be used,based on the cost function, to adjust and/or modify one or more weightsand/or parameters of the generator network 402 and/or discriminatornetwork 404. For example, the system computing device 10 may comprisemeans, such as the processor 12, memory 14, simulator circuitry 19,and/or the like, for modify and/or adjust one or more weights and/orparameters of the generator network 402 and/or discriminator network 404based on the discriminator network's ability to differentiate thesimulated time series generated by the generator network from the timeseries of the training information/data 410.

At block 510, it is determined if a training requirement has beensatisfied. For example, the system computing device 10 may determine ifthe training requirement is satisfied. For example, the system computingdevice 10 may comprise means, such as processor 12, memory 14, simulatorcircuitry 19, and/or the like, for determining if the trainingrequirement is satisfied. In an example embodiment, the trainingrequirement is a defined a number of iterations (e.g., number oftraining iterations, shown in line 420 of the pseudocode provided byFIG. 4B). In an example embodiment, the training requirement is aconvergence requirement corresponding to a convergence of the weightsand/or parameters of the generator network 402 and/or the discriminatornetwork 404. For example, if the largest adjustment and/or modificationto one or more weights and/or parameters of the generator network 402and/or the discriminator network 404 is less than a thresholdadjustment, it may be determined (e.g., by the system computing device10) that the weights and/or parameters of the generator network 402and/or the discriminator network 404 have converged and the trainingrequirement is satisfied. In various embodiments, the trainingrequirement is a combination of a defined number of iterations (e.g., amaximum number of iterations) and a convergence requirement. Forexample, the system computing device 10 may comprise means, such asprocessor 12, memory 14, simulator circuitry 19, and/or the like,determining whether a training requirement of the CCGAN is satisfied.

When, at block 510, it is determined that the training requirement isnot satisfied, the process returns to block 504 and another iteration oftraining is performed. When, at block 510, it is determined that thetraining requirement is satisfied, the CCGAN 400 is ready for use ingenerating and/or simulating one or more time series.

At block 512, a request for one or more time series is received. Forexample, the system computing device 10 may receive a request for one ormore time series. For example, the time series simulator operating onthe system computing device 10 may receive a time series request for oneor more time series. For example, the system computing device 10 maycomprise means, such as processor 12, memory 14, communicationsinterface 16, user input-output circuitry 18, and/or the like, forreceiving a request for one or more time series. In various embodiments,the request for one or more time series comprises and/or indicates inputinformation/data to be used for generating the one or more time series.For example, the request for one or more times series may include theconditions y for one or more time steps t_(−m), . . . , t₀ (where m ispositive, and t_(i−1)<t_(i)<t_(i+1)). In various embodiments, theconditions y for the one or more time steps t_(−m), . . . , t₀ includeat least one value for a continuous condition for each of the one ormore time steps t_(−m), . . . , t₀. In various embodiments, theconditions y for the one or more time steps t_(−m), . . . , t₀ mayinclude values for one or more categorical and/or discrete conditions inaddition to the at least one value for a continuous condition for eachof the one or more time steps t_(−m), . . . , t₀. In variousembodiments, the request for the one or more time series may indicate aset of time steps for which instances of information/data of the timeseries should be generated (e.g., t₁, t₂, . . . , t_(N), wheret_(i−1)<t_(i)<t_(i+1)) or final time step (e.g., t_(N)) and a time stepsize Δt (e.g., Δt=t_(i)−t_(i−1)). In an example embodiment, the requestfor the one or more time series may indicate one or more elements forwhich the instances of information/data of the time series shouldcontain a value. For example, the elements may include an index (e.g.,Libor rate, stock market returns, average weekly hours of manufacturing,average weekly jobless claims for unemployment insurance, manufacturer'snew orders for consumer goods/materials, slower deliveries diffusionindex, manufacturer's new orders for non-defense capital goods, buildingpermits, stock prices of a set number of common stocks, Money Supply,interest rate spread, index of consumer expectations, and/or the like),a volatility measure (e.g., a change between two consecutive values ofthe same index, and/or the like), VaR, ES an unemployment rate, GDP,and/or any other element of interest that may change over the course ofthe time series (e.g., between t₀ and t_(N)). In various embodiments,the CCGAN 400 is trained to generate time series having a particular setof elements (e.g., to generate a time ordered plurality of instances ofinformation/data each containing a value for each of a set of elements).In such an embodiment, the request for the one or more time series mayindicate which elements of the set of elements are to be returned inresponse to the request. In an example embodiment, the time seriesrequest indicates a number of time series to be generated and/orsimulated.

In an example embodiment, the request is automatically generated by thesystem computing device 10 (e.g., in response to a set and/or programmedtrigger such as the end of the month, end of the quarter, end of the(fiscal) year, and/or the like). In various embodiments, the request isgenerated and provided by a user computing device 20 in response to userinteraction with an interactive user interface (IUI) provided via theinput-output circuitry 28 of the user computing device 20. For example,the user computing device 20 may provide a time series request IUI 600via the input-output circuitry 28, an example version of which isprovided in FIG. 6 . For example, the user computing device 20 mayexecute application program code to provide the time series request IUI600. In various embodiments, the application program code corresponds toa dedicated application; a browser used to access a portal, website,dashboard and/or the like (e.g., provided and/or hosted by the systemcomputing device 10 and/or the like); or other application. In variousembodiments, the time series request IUI 600 comprises one or morefillable and/or selectable series information/data fields 602. Forexample, the user may provide input (e.g., via input-output circuitry28) to cause one or more fillable and/or selectable instrumentinformation/data fields 602 to be populated by the user computing device20. The user may then select (e.g., via input-output circuitry 28) aselectable submit element 604 (e.g., a submit button, icon, and/or thelike) to cause the user computing device 20 to generate the time seriesrequest (e.g., based on the user selected and/or providedinformation/data) and provide (e.g., transmit) the time series requestsuch that the system computing device 10 receives the time seriesrequest. For example, the user computing device 20 may comprise means,such as processor 22, memory 24, communications interface 26,input-output circuitry 28, and/or the like, for receiving user input(e.g., via a time series request IUI 600), generate a time seriesrequest, and provide the time series request.

At block 514, the one or more time series are generated and/orsimulated. For example, the system computing device 10 may generateinput information/data 412 based on the received time series request andprovide and/or pass the input information/data 412 to the trained CCGAN400. For example, the system computing device 10 may provide theinformation/data from the time series request to the time seriessimulator (e.g., the pre-processing module) for generation of the inputinformation/data 412. In various embodiments, the input information/data412 comprises at least one continuous conditional corresponding to atleast one time step. For example, the input information/data 412 mayinclude conditions y corresponding to time step to and including atleast one continuous variable. The trained CCGAN 400 may then use theinput information/data 412 to generate one or more time series. Forexample, the generator network 402 may receive the inputinformation/data 412 via the input layer of the generator network 402.The input information/data may then be passed, from the input layer,through one or more hidden layers of the generator network 402, throughto the output layer of the generator network 402. The output layer ofthe generator network 402 may then provide one or more instances ofinformation/data of the time series.

In an example embodiment, the CCGAN 400 is configured to determine oneinstance of information/data of the time series at a time. For example,each instance of information/data of the time series may correspond toone time step. After generating and/or simulating a first instance ofinformation/data of the time series corresponding to time t_(i), thefirst instance of information/data of the time series may be stored(e.g., via memory 14) and/or provided (e.g., all of the first instanceof information/data or a portion of the first instance ofinformation/data) to the input layer of the generator network 402 foruse in generating and/or simulating a second instance ofinformation/data corresponding to time t_(i+1). This process may berepeated until the instance of information/data corresponding to thetime of the time series (e.g., t_(N)) is generated and/or simulated andpossibly stored in memory 14. In various embodiments, portions ofinstances of information/data from multiple previous time steps may beprovided as input (e.g., continuous conditions) to the CCGAN 400 for usein generating and/or simulating a next instance of information/data ofthe time series. For example, a post-processing module of the timeseries simulator may store each of the instances of information/datagenerated by the CCGAN and compile the instances of information/datainto the simulated time series. For example, compiling the time seriesmay include generating a time ordered series of the instances ofinformation/data, filtering the elements of the instances ofinformation/data based on the information/data of the time seriesrequest, and/or the like.

At block 514, after generating and/or simulating each of the instancesof information/data of the time series indicated by the time seriesrequest, the one or more simulated time series and/or portions thereofmay be provided. For example, the system computing device may providethe one or more simulated time series and/or portions thereof such thata user computing entity 20 receives the one or more simulated timeseries and/or portions thereof. In various embodiments, the one or moretime series and/or portions thereof may be provided for display to auser (e.g., via an IUI provided via the input-output circuitry 28 of theuser computing device 20), stored for later use (e.g., in memory 14,24), provided as input to an analysis pipeline, and/or the like. In anexample embodiment, the one or more simulated time series and/orportions thereof are provided as input to the analysis pipeline and arepresentation (e.g., graphical, tabular, and/or the like) of an outputof the analysis pipeline is displayed to a user (e.g., via an IUIprovided via the input-output circuitry 28 of the user computing device20).

For example, the system computing device 10 may provide the one or moresimulated time series and/or portions thereof such that the usercomputing entity 20 receives the one or more time series and/or portionsthereof. For example, the system computing device 10 may comprise means,such as processor 12, memory 14, communications interface 16, and/or thelike, for providing the one or more simulated time series and/orportions thereof such that the user computing entity 20 receives the oneor more simulated time series and/or portions thereof.

In various embodiments, the user computing device 20 receives the one ormore simulated time series and/or portions thereof. For example, theuser computing device 20 may comprise means, such as processor 22,memory 24, communications interface 26, and/or the like for receivingthe one or more simulated time series and/or portions thereof. The usercomputing device 20 may register and/or processes the one or moresimulated time series and/or portions thereof (e.g., via processor 22)and generate and/or render a representation of at least a portion of theone or more simulated time series and/or portions thereof. For example,a graphical and/or tabular representation of at least a portion of theone or more simulated time series may be generated and/or rendered. Therepresentation of the at least a portion of the one or more simulatedtime series may then be provided (e.g., displayed) via the input-outputcircuitry 28 of the user computing device 20. For example, the usercomputing device 20 may execute application program code to provide atime series visualization IUI 700 via the input-output circuitry 28, anexample version of which is shown in FIG. 7 . In various embodiments,the application program code corresponds to a dedicated application; abrowser used to access a portal, website, dashboard and/or the like(e.g., provided and/or hosted by the system computing device 10 and/orthe like); or other application. As shown in FIG. 7 , a time seriesvisualization IUI 700 may comprise a representation 702 of at least aportion of the one or more simulated time series. For example, therepresentation 702 provides a graph of 100 forecasting paths of GDPgenerated by an example embodiment of a CCGAN using the most recentfour-quarter historical values as the conditions (e.g., the inputinformation/data 412). For example, the CCGAN 400 may be used togenerate a plurality of different time series based on the most recenthistorical values as conditions (e.g., the input information/data 412).The plurality of time series may then be provided to analysis pipelinefor use in a hypothetical shock analysis, analysis of the distributionof the plurality of time series to determine a most likelihood forecastand/or the likelihood of one or more scenarios, and/or the like. Arepresentation of one or more of the plurality of simulated time seriesand/or a result of the analysis pipeline may be provided (e.g.,displayed) via the time series visualization IUI 700, in variousembodiments.

In an example embodiment, one or more simulated time series and/or theresults of analyzing one or more simulating time series via an analysispipeline (referred to as the simulated results herein) is used tovalidate one or more models. For example, the simulated results and/or aportion thereof may be provided to a model validation machine user thatis a model validation module, application, program, and/or the likeconfigured to compare at least a portion of the simulated results tomodel determined results to validate a forecasting model and/or themodel results. For example, a forecasting model that is external to theCCGAN may generate model determined results that correspond to thesimulated results generated via the CCGAN. For example, the modeldetermined results may include values for one or more elements of theinstances of information/data of the simulated time series and/or valuescorresponding to values generated by the analysis pipeline. Theforecasting model may be part of a line-of-business (LOB) programpackage or may be another forecasting model that is otherwise separatefrom the CCGAN. In an example embodiment, the model validation machineuser may comprise computer executable program code operating on thesystem computing device 10, a user computing device 20, and/or the like.

The model validation machine user compares one or more values of themodel determined results and corresponding values of and/or determinedfrom the simulated results to determine if the model determined resultsand the simulated results satisfy a similarity requirement. In anexample embodiment, if the ratio one or more values of the modeldetermined results to the corresponding values of and/or determined fromthe simulated results is within a defined range (e.g., 0.8 to 1.25, 0.85to 1.17, 0.9 to 1.11, 0.95 to 1.05, 0.98 to 1.02, 0.99 to 1.01, and/orthe like), it may be determined that the model determined results andthe simulated results satisfy the similarity requirement. Similarly, ifthe ratio of one or more values of the model determined results to thecorresponding values of and/or determined from the simulated results isnot within the defined range, the model validation machine user maydetermine that the similarity requirement is not satisfied. In anexample embodiment, if the absolute value of the difference between theone or more values of the model determined results and the correspondingvalues of and/or determined from the simulated results or the absolutevalue of the difference between the one or more values of the modeldetermined results and the corresponding values of and/or determinedfrom the simulated results divided by some value (e.g., the value fromthe model determined results or the corresponding value of and/ordetermined from the simulated results) is less than a threshold value,it may be determined that the similarity requirement is satisfied.Similarly, if the absolute value of the difference between the one ormore values of the model determined results and the corresponding valuesof and/or determined from the simulated results or the absolute value ofthe difference between the one or more values of the model determinedresults and the corresponding values of and/or determined from thesimulated results divided by some value (e.g., the value from the modeldetermined results or the corresponding value of and/or determined fromthe simulated results) is not less than the threshold value, the modelvalidation machine user may determine that the similarity requirement isnot satisfied.

When the similarity requirement is satisfied, the model validationmachine user may cause the simulated results to be stored, a log to beupdated indicating that the similarity requirement was satisfied, and/orthe like. When the similarity requirement is not satisfied, the modelvalidation machine user may cause the simulated results to be stored, alog to be updated indicating that the similarity requirement was notsatisfied, generate and cause an alert to be provided (e.g., via the IUIof the user computing device 20, via an email, instant message, and/orthe like), and/or otherwise provide feedback to one or more human usersor other machine users that the similarity requirement was notsatisfied. In an example embodiment, providing the alert includescausing a representation of at least a portion of the simulated resultsand/or one or more values determined therefrom to be provided (e.g.,displayed) via the input-output circuitry 28 of the user computingdevice 20, a representation of at least a portion of the modeldetermined results to be provided (e.g., displayed) via the input-outputcircuitry 28 of the user computing device 20, an identification of theforecasting model that did not satisfy the similarity requirement, anindication that the similarity requirement was not satisfied, and/or thelike, and/or various combinations thereof.

FIG. 5 illustrates a flowchart describing sets of operations performedby apparatuses, methods, and computer program products according tovarious example embodiments. It will be understood that each block ofthe flowcharts, and combinations of blocks in the flowcharts, may beimplemented by various means, embodied as hardware, firmware, circuitry,and/or other devices associated with execution of software including oneor more software instructions. For example, one or more of theoperations described above may be embodied by software instructions. Inthis regard, the software instructions which embody the proceduresdescribed above may be stored by a memory of an apparatus employing anembodiment of the present invention and executed by a processor of thatapparatus. As will be appreciated, any such software instructions may beloaded onto a computer or other programmable apparatus (e.g., hardware)to produce a machine, such that the resulting computer or otherprogrammable apparatus implements the functions specified in theflowchart blocks. These software instructions may also be stored in acomputer-readable memory that may direct a computer or otherprogrammable apparatus to function in a particular manner, such that thesoftware instructions stored in the computer-readable memory produce anarticle of manufacture, the execution of which implements the functionsspecified in the flowchart blocks. The software instructions may also beloaded onto a computer or other programmable apparatus to cause a seriesof operations to be performed on the computer or other programmableapparatus to produce a computer-implemented process such that thesoftware instructions executed on the computer or other programmableapparatus provide operations for implementing the functions specified inthe flowchart blocks.

The flowchart blocks support combinations of means for performing thespecified functions and combinations of operations for performing thespecified functions. It will be understood that one or more blocks ofthe flowcharts, and combinations of blocks in the flowcharts, can beimplemented by special purpose hardware-based computer systems whichperform the specified functions, or combinations of special purposehardware and software instructions.

In some embodiments, some of the operations above may be modified orfurther amplified. Furthermore, in some embodiments, additional optionaloperations may be included. Modifications, amplifications, or additionsto the operations above may be performed in any order and in anycombination.

Technical Advantages

As these examples illustrate, example embodiments contemplated hereinprovide technical solutions that solve real-world problems faced duringthe generation of time series. Traditional means for generating timeseries, such as AR models, GARCH models, stochastic models, and/or thelike are strongly dependent on model assumptions and estimation of themodel parameters and, thus, are less effective in the estimation orgeneration of time series corresponding to non-Gaussian, skewed, and/orheavy-tailed distributions and/or distributions with time-varyingdependence features. As described herein, a CGAN or CCGAN provides anon-parametric technique capable of learning dependence structures oftime series and simulating conditional predictive time series, even fortime series corresponding to non-Gaussian, skewed, and/or heavy-taileddistributions and/or distributions with time-varying dependencefeatures. Additionally, the removal of the model assumptions allows fora more accurate determination of correlations (e.g., first order and/orsecond order) between various elements of the instances ofinformation/data of the time series and/or determined based on the timeseries. For example, when a time series determined by traditional meansis used, the correlation between two elements or parameters is set bythe model assumptions rather than by the actual, real world relationshipbetween the two elements or parameters. By generating and/or simulatingthe time series using the CCGAN, the correlation between the twoelements or parameters represents the correlation between the twoelements or parameters learned by the CCGAN based on training data usedto train the CCGAN. Thus, using the CCGAN to generate and/or simulatetime series provides a technical advantage over traditional time seriesgeneration techniques known in the art.

CONCLUSION

Many modifications and other embodiments of the inventions set forthherein will come to mind to one skilled in the art to which theseinventions pertain having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it is tobe understood that the inventions are not to be limited to the specificembodiments disclosed and that modifications and other embodiments areintended to be included within the scope of the appended claims.Moreover, although the foregoing descriptions and the associateddrawings describe example embodiments in the context of certain examplecombinations of elements and/or functions, it should be appreciated thatdifferent combinations of elements and/or functions may be provided byalternative embodiments without departing from the scope of the appendedclaims. In this regard, for example, different combinations of elementsand/or functions than those explicitly described above are alsocontemplated as may be set forth in some of the appended claims.Although specific terms are employed herein, they are used in a genericand descriptive sense only and not for purposes of limitation.

What is claimed is:
 1. A method for generating one or more time series,the method comprising: generating, via a generator network of acontinuous condition generative adversarial network (CCGAN) operating ona computing device, a time series based on input data comprising acontinuous condition, wherein the time series is generated by thegenerator network based on a value of the continuous condition; andproviding, via the computing device, the time series such that the timeseries is at least one of (a) available for input to an analysispipeline or (b) received by a user computing device wherein arepresentation of at least a portion of the one or more time series isprovided via an interactive user interface of the user computing device.2. The method of claim 1, wherein the input data comprises a categoricalcondition.
 3. The method of claim 2, wherein the categorical conditionis a discrete condition that indicates a period of time corresponding toone or more time steps of the input data.
 4. The method of claim 1,wherein generating the time series based on the input data comprisesgenerating a plurality of instances of data, each instance of datacorresponding to a time step, wherein to generate a second or subsequentinstance of data corresponding to a subsequent time step, a valuecorresponding to a prior time step is used by the generator network asthe continuous condition.
 5. The method of claim 4, further comprisingcompiling the plurality of instances of data to form the time series. 6.The method of claim 5, wherein compiling the plurality of instances ofdata comprises filtering the time series based at least in part on theinput data.
 7. The method of claim 1, wherein the time series is one oftwo or more times series generated by the generator network based on theinput data, wherein the two or more time series correspond to aplurality of possible scenarios.
 8. The method of claim 1, wherein thecontinuous condition is determined based on historical data.
 9. Themethod of claim 1, wherein the CCGAN is trained prior to generating thetime series and training the CCGAN comprises clipping one or moreweights of a discriminator network of the CCGAN.
 10. The method of claim1, wherein the generator network of the CCGAN comprises one or morehidden layers followed by application of a LeakyRelu activationfunction.
 11. The method of claim 1, wherein the CCGAN comprises thegenerator network and a discriminator network that are collaborativelytrained via a zero sum game.
 12. The method of claim 1, wherein theCCGAN is trained to determine an element of the time series, wherein thedetermination is based at least in part on the value of the continuouscondition.
 13. An apparatus for determining an time series, theapparatus comprising: processor circuitry configured to: operate agenerator network of a continuous condition generative adversarialnetwork (CCGAN) to generate a time series based on input data comprisinga continuous condition, wherein the time series is generated by thegenerator network based on a value of the continuous condition; andcause the time series to be provided such that the time series is atleast one of (a) available for input to an analysis pipeline or (b)received by a user computing device wherein a representation of at leasta portion of the one or more time series is provided via an interactiveuser interface of the user computing device.
 14. The apparatus of claim13, wherein the input data comprises a categorical condition.
 15. Theapparatus of claim 14, wherein the categorical condition is a discretecondition that indicates a period of time corresponding to one or moretime steps of the input data.
 16. The apparatus of claim 13, whereingenerating the time series based on the input data comprises generatinga plurality of instances of data, each instance of data corresponding toa time step, wherein to generate a second or subsequent instance of datacorresponding to a subsequent time step, a value corresponding to aprior time step is used by the generator network as a continuouscondition.
 17. The apparatus of claim 16, wherein the processingcircuitry is further configured to compile the plurality of instances ofdata to form the time series.
 18. The apparatus of claim 17, whereincompiling the plurality of instances of data comprises filtering thetime series based at least in part on the input data.
 19. The apparatusof claim 13, wherein the time series is one of two or more times seriesgenerated by the generator network based on the input data, wherein thetwo or more time series correspond to a plurality of possible scenarios.20. The apparatus of claim 13, wherein the CCGAN is trained prior togenerating the time series and training the CCGAN comprises clipping oneor more weights of a discriminator network of the CCGAN.